package ar.com.ctrln.persistence.model.ticket;

import java.util.Date;
import java.util.Set;


import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;

import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import ar.com.ctrln.persistence.model.organizacion.Organizacion;

import ar.com.ctrln.persistence.model.servicios.Servicio;
import ar.com.ctrln.persistence.model.servicios.TipoServicio;
import ar.com.ctrln.persistence.model.ticket.actividad.Actividad;

@Entity
@Table(name="TICKET")
public class Ticket {
	
	public static final String ESTADO_CANCELADO = "Cancelado";
	public static final String ESTADO_CERRADO = "Cerrado";
	public static final String ESTADO_PENDIENTE = "Pendiente";
	public static final String ESTADO_ENESPERA = "Esperando";
	public static final String ESTADO_PROGRAMADO = "Programado";
	
	public static final String RESULTADO_POSITIVO = "Positivo";
	public static final String RESULTADO_NEGATIVO = "Negativo";
	public static final String RESULTADO_PARCIAL = "Parcial";
	
	@Id
	@GeneratedValue
	@Column(name = "id_ticket")
	private long id;
	
	//@ManyToOne
	//@JoinColumn(name = "id_estado")
	//private EstadoTicket estadoTicket;
	
	@Column
	private String estado;
	
	@Column
	private String prioridad;
	
	@Column
	private Date fechaAlta;
	
	@Column
	private Date fechaLimite;
	
	@Column
	private Date fechaFinalizacion;
	
	@Column
	private String descripcion;
	
	@Column
	private String conclucion;
	
	@Column
	private String resultado;
	
	@ManyToOne
	@JoinColumn(name = "id_organizacion")
	private Organizacion organizacion;
	
	@ManyToOne
	@JoinColumn(name = "id_servicio")
	private Servicio servicio;
	
	@ManyToOne
	@JoinColumn(name = "id_tipoServicio")
	private TipoServicio tipoServicio;
	
	@ManyToOne
	@JoinColumn(name = "id_tipoTicket")
	private TipoTicket tipoTicket;
	
	@OneToMany(mappedBy="ticket", fetch=FetchType.EAGER)
    private Set<Actividad> actividades;
	
	
	
	public String getConclucion() {
		return conclucion;
	}

	public void setConclucion(String conclucion) {
		this.conclucion = conclucion;
	}

	public String getEstado() {
		return estado;
	}

	
	public TipoServicio getTipoServicio() {
		return tipoServicio;
	}

	public void setTipoServicio(TipoServicio tipoServicio) {
		this.tipoServicio = tipoServicio;
	}

	public String getResultado() {
		return resultado;
	}

	public void setResultado(String resultado) {
		this.resultado = resultado;
	}

	public Set<Actividad> getActividades() {
		return actividades;
	}

	public void setActividades(Set<Actividad> actividades) {
		this.actividades = actividades;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	public String getPrioridad() {
		return prioridad;
	}

	public void setPrioridad(String prioridad) {
		this.prioridad = prioridad;
	}

	public Ticket() {
		super();
	}

	public TipoTicket getTipoTicket() {
		return tipoTicket;
	}

	public void setTipoTicket(TipoTicket tipoTicket) {
		this.tipoTicket = tipoTicket;
	}

	public Organizacion getOrganizacion() {
		return organizacion;
	}

	public void setOrganizacion(Organizacion organizacion) {
		this.organizacion = organizacion;
	}

	public Date getFechaAlta() {
		return fechaAlta;
	}

	public void setFechaAlta(Date fechaAlta) {
		this.fechaAlta = fechaAlta;
	}

	public Date getFechaLimite() {
		return fechaLimite;
	}

	public void setFechaLimite(Date fechaLimite) {
		this.fechaLimite = fechaLimite;
	}

	public Date getFechaFinalizacion() {
		return fechaFinalizacion;
	}

	public void setFechaFinalizacion(Date fechaFinalizacion) {
		this.fechaFinalizacion = fechaFinalizacion;
	}

	public Servicio getServicio() {
		return servicio;
	}

	public void setServicio(Servicio servicio) {
		this.servicio = servicio;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public long getId() {
		return id;
	}
	
	

}
